package com.yuanchu.search.index;

import com.baomidou.mybatisplus.annotation.TableId;
import com.fasterxml.jackson.annotation.JsonInclude;
import com.fasterxml.jackson.databind.PropertyNamingStrategy;
import com.fasterxml.jackson.databind.annotation.JsonNaming;
import com.yuanchu.search.entity.YoshopOrderGoodsEntity;
import lombok.Data;

import java.util.List;

/**
 * @version: 1.0
 * @Author: adan
 * @description:
 * @date: 2024-02-29 12:51
 */
@JsonNaming(PropertyNamingStrategy.SnakeCaseStrategy.class)
@Data
public class OrderIndex {
    /**
     * 订单ID
     */
    @TableId
    private Integer orderId;
    /**
     * 订单号
     */
    private String orderNo;
    /**
     * 商品总金额(不含优惠折扣)
     */
    private String totalPrice;
    /**
     * 订单金额(含优惠折扣)
     */
    private String orderPrice;
    /**
     * 优惠券ID
     */
    private Integer couponId;
    /**
     * 优惠券抵扣金额
     */
    private String couponMoney;
    /**
     * 积分抵扣金额
     */
    private String pointsMoney;
    /**
     * 积分抵扣数量
     */
    private Integer pointsNum;
    /**
     * 实际付款金额(包含运费)
     */
    private String payPrice;
    /**
     * 后台修改的订单金额（差价）
     */
    private Object updatePrice;
    /**
     * 买家留言
     */
    private String buyerRemark;
    /**
     * 支付方式(10余额支付 20微信支付)
     */
    private Integer payType;
    /**
     * 付款状态(10未付款 20已付款)
     */
    private Integer payStatus;
    /**
     * 付款时间
     */
    private String payTime;
    /**
     * 配送方式(10快递配送)
     */
    private Integer deliveryType;
    /**
     * 运费金额
     */
    private String expressPrice;
    /**
     * 物流公司ID
     */
    private Integer expressId;
    /**
     * 物流公司
     */
    private String expressCompany;
    /**
     * 物流单号
     */
    private String expressNo;
    /**
     * 发货状态(10未发货 20已发货)
     */
    private Integer deliveryStatus;
    /**
     * 发货时间
     */
    private String deliveryTime;
    /**
     * 收货状态(10未收货 20已收货)
     */
    private Integer receiptStatus;
    /**
     * 收货时间
     */
    private String receiptTime;
    /**
     * 订单状态(10进行中 20取消 21待取消 30已完成)
     */
    private Integer orderStatus;
    /**
     * 赠送的积分数量
     */
    private Integer pointsBonus;
    /**
     * 订单是否已结算(0未结算 1已结算)
     */
    private Integer isSettled;
    /**
     * 微信支付交易号
     */
    private String transactionId;
    /**
     * 是否已评价(0否 1是)
     */
    private Integer isComment;
    /**
     * 订单来源(10普通订单)
     */
    private Integer orderSource;
    /**
     * 来源记录ID
     */
    private Integer orderSourceId;
    /**
     * 来源客户端 (APP、H5、小程序等)
     */
    private String platform;
    /**
     * 用户ID
     */
    private Integer userId;
    /**
     * 是否删除
     */
    private Integer isDelete;
    /**
     * 商城ID
     */
    private Integer storeId;
    /**
     * 创建时间
     */
    private String createTime;
    /**
     * 更新时间
     */
    private String updateTime;

    private String stateText;
    private OrderAddressModel address;
    // 订单配送方式
    private Integer delivery;
    @JsonInclude(JsonInclude.Include.NON_EMPTY)
    private List<YoshopOrderGoodsEntity> goods;
    @JsonInclude(JsonInclude.Include.NON_NULL)
    private UserModel user;

    @Data
    public static class OrderAddressModel {
        private String name;
        private String phone;
    }

    @Data
    public static class UserModel {
        private Integer userId;
        private String nickname;
        private String avatarId;
        private String avatarUrl;

    }
}
